#include<bits/stdc++.h> usingnamespace std; #define int long long int n,m,x[105],y[105],z[105],dp[1<<18]; signedmain(){ ios::sync_with_stdio(false),cin.tie(0),cout.tie(0); cin>>n>>m; for (int i=0;i<m;i++) cin>>x[i]>>y[i]>>z[i]; dp[0]=1; for (int msk=0;msk<(1<<n);msk++) { if (dp[msk]==0) continue; int p=__builtin_popcount(msk); bool flag=true; for (int i=0;i<m;i++) if (x[i]==p) { int cnt=0; for (int j=0;j<y[i];j++) if (msk&(1<<j)) cnt++; if (cnt>z[i]) { flag=false; break; } } if (!flag) continue; for (int j=0;j<n;j++) if (!(msk&(1<<j))) dp[msk|(1<<j)]+=dp[msk]; } cout<<dp[(1<<n)-1]; return0; }